<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
  "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
  <!ENTITY % general-entities SYSTEM "../general.ent">
  %general-entities;
]>

<sect1 id="ch-tools-expect" role="wrap">
  <?dbhtml filename="expect.html"?>

  <sect1info condition="script">
    <productname>expect</productname>
    <productnumber>&expect-version;</productnumber>
    <address>&expect-url;</address>
  </sect1info>

  <title>Expect-&expect-version;</title>

  <indexterm zone="ch-tools-expect">
    <primary sortas="a-Expect">Expect</primary>
  </indexterm>

  <sect2 role="package">
    <title/>

    <para>Пакет содержит инструменты для автоматизации и тестирования, и является расширением к скрипт-языку Tcl, для многих интерактивных приложений. Он будет установлен только во временный инструментарий.</para>

    <segmentedlist>
      <segtitle>&buildtime;</segtitle>
      <segtitle>&diskspace;</segtitle>

      <seglistitem>
        <seg>&expect-ch5-sbu;</seg>
        <seg>&expect-ch5-du;</seg>
      </seglistitem>
    </segmentedlist>

  </sect2>

  <sect2 role="installation">
    <title>Установка пакета Expect</title>

    <para>Для начала, необходимо указать сценарию конфигурирования пакета использовать <filename>/bin/stty</filename> вместо <filename>/usr/local/bin/stty</filename> который он может искать в хост-системе. Это гарантирует что наши инструменты тестирования останутся в нормальном состоянии до окончания сборки всего временного набора инструментов:</para>

<screen><userinput remap="pre">cp -v configure{,.orig}
sed 's:/usr/local/bin:/bin:' configure.orig &gt; configure</userinput></screen>

    <para>Подготовьте пакет Expect к компиляции:</para>

<screen><userinput remap="configure">./configure --prefix=/tools       \
            --with-tcl=/tools/lib \
            --with-tclinclude=/tools/include</userinput></screen>

    <variablelist>
      <title>Значение параметров конфигурации:</title>

      <varlistentry>
        <term><parameter>--with-tcl=/tools/lib</parameter></term>
        <listitem>
          <para>Аргумент обеспечивает то что сценарий конфигурирования будет выполнять поиск установленного пакета Tcl во каталогах временного инструментария, вместо поиска в каталогах хост-системы.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term><parameter>--with-tclinclude=/tools/include</parameter></term>
        <listitem>
          <para>Значение аргумента явно указывает, где выполнять поиск внутренних заголовочных файлов пакета Tcl. Использование этой опции позволяет избежать условий, при которых сценарий <command>configure</command> может не выполнится, потому что не сможет автоматически найти заголовочные файлы Tcl.</para>
        </listitem>
      </varlistentry>

    </variablelist>

    <para>Выполните сборку пакета:</para>

<screen><userinput remap="make">make</userinput></screen>

    <para>Компиляция завершена. Как обсуждалось ранее выполнение тестов не является обязательным для набора временных инструментов в этой главе. Чтобы запустить выполнение тестов, в любом случае, выполните следующую команду:</para>

<screen><userinput remap="test">make test</userinput></screen>

    <para>Наборы тестов Tcl могут завершаться с ошибками, которые не возможно контролировать. Следовательно, сбои при выполнении тестов набора вполне ожидаемы, и они не считаются критичными.</para>

    <para>Установите пакет:</para>

<screen><userinput remap="install">make SCRIPTS="" install</userinput></screen>

    <variablelist>
      <title>Значение параметров make:</title>

      <varlistentry>
        <term><parameter>SCRIPTS=""</parameter></term>
        <listitem>
          <para>Это предотвращает установку дополнительных сценариев Expect, которые не нужны.</para>
        </listitem>
      </varlistentry>

    </variablelist>

  </sect2>

  <sect2 id="contents-expect" role="content">
    <title>Содержимое пакета Expect</title>

    <segmentedlist>
      <segtitle>Установленная программа</segtitle>
      <segtitle>Установленная библиотека</segtitle>

      <seglistitem>
        <seg>expect</seg>
        <seg>libexpect-&expect-lib-version;.so</seg>
      </seglistitem>
    </segmentedlist>

    <variablelist>
      <bridgehead renderas="sect3">Краткое описание</bridgehead>
      <?dbfo list-presentation="list"?>
      <?dbhtml list-presentation="table"?>

      <varlistentry id="expect">
        <term><command>expect</command></term>
        <listitem>
          <para>Общается с другими интерактивными программами в соответствии со сценарием</para>
          <indexterm zone="ch-tools-expect expect">
            <primary sortas="b-expect">expect</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="libexpect">
        <term><filename class="libraryfile">libexpect-&expect-lib-version;.so</filename></term>
        <listitem>
          <para>Содержит функции, которые позволяют пакету Expect быть использованным как расширение к Tcl или использоваться напрямую, из Си или Си++ (без Tcl)</para>
          <indexterm zone="ch-tools-expect libexpect">
            <primary sortas="c-libexpect-&expect-lib-version;">libexpect-&expect-lib-version;</primary>
          </indexterm>
        </listitem>
      </varlistentry>

    </variablelist>

  </sect2>

</sect1>
